// 需要HTTP 模块来启动服务器和Socket.IO
var http= require('http'), io= require('socket.io');

// 在8080端口启动服务器
var server= http.createServer(function(req, res){
    // 发送HTML的headers和message
    res.writeHead(200,{ 'Content-Type': 'text/html' });
    res.end('<h1>Hello Socket Lover!</h1>');
});
// 中间件 解决跨域问题
function middleware(req, res, next) {
    console.log('这里是中间件')
    // 跨域处理
    res.header("Access-Control-Allow-Origin", "*");//设置允许跨域的域名，*代表允许任意域名跨域
    res.header("Access-Control-Allow-Headers", "X-Requested-With");//允许的header类型
    res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");//跨域允许的请求方式
    res.header("X-Powered-By", ' 3.2.1');
    res.header("Content-Type", "application/json;charset=utf-8");
    next(); // 执行下一个路由
    }
    
//all是路由中指代所有的请求方式
server.use(middleware) //使用全局自定义中间件，放到起始位置
server.listen(1122);

// 创建一个Socket.IO实例，把它传递给服务器
var socket= io(server);

// 添加一个连接监听器
socket.on('connection', function(client){
    console.log('connected');
    // 成功！现在开始监听接收到的消息
    client.on('message',function(event){
        console.log('Received message from client!',event);
    });
    client.on('disconnect',function(){
        // clearInterval(interval);
        console.log('Server has disconnected');
    });
    client.on("open", function(data){
        console.log("------------open---------------")
    })
    // var interval= setInterval(function() {
    //     client.send('This is a message from the server! ' + new Date().getTime());
    //     console.log('This is a message from the server! ' + new Date().getTime());
    // },5000);
});